import Utils from './utils/index.js'
import Req from './common/req.js'
import Filters from './common/filters.js'
import Vue from 'vue'
import upperFirst from 'lodash/upperFirst'
import camelCase from 'lodash/camelCase'
// 功能组件
export default {
	install: function(Instace, options = {}) {
		
		// options.API = options.API || []
		// const requireComponent = require.context(
		//   // 其组件目录的相对路径
		//   './views',
		//   // 是否查询其子目录
		//   true,
		//   // 匹配基础组件文件名的正则表达式
		//   /(vue|js)$/
		// )
		
		// requireComponent.keys().forEach(fileName => {
		//   // 获取组件配置
		//   const componentConfig = requireComponent(fileName)
		
		//   // 获取组件的 PascalCase 命名
		//   const componentName = upperFirst(
		//     camelCase(
		//       // 获取和目录深度无关的文件名
		//       fileName
		//         .split('/')
		//         .pop()
		//         .replace(/\.\w+$/, '')
		//     )
		//   )
		
		//   // 全局注册组件
		//   Vue.component(
		//     `es-${componentName.toLowerCase()}`,
		//     // 如果这个组件选项是通过 `export default` 导出的，
		//     // 那么就会优先使用 `.default`，
		//     // 否则回退到使用模块的根。
		//     componentConfig.default || componentConfig
		//   )
		// })

		// 原型中公用方法
		Vue.prototype.$es = Utils
		
		for (let filter in Filters) {
			Vue.filter(`es${upperFirst(filter)}`, Filters[filter])
		}
		
		// 添加$api至原型
		function toHump(name) {
			return name.replace(/\/(\w)/g, function(all, letter) {
				return letter.toUpperCase();
			});
		}
	}
}
